
class RelationShip:
    """保存couple之间的对象关系"""

    def __init__(self):
        self.couple = []

    def make_couple(self,obj1,obj2):
        self.couple = [obj1,obj2] # 两个人就成了对象
        print("[%s] 和 [%s] 确定了男女关系..."%(obj1.name,obj2.name))

    def get_my_partner(self,obj):

        print("找[%s]的对象"% obj.name)
        for i in self.couple:
            if i != obj: # 代表这个是 obj 的对象
                return i
        else:
            print("你自己心里没有点数吗，你没有对象。。。")

    def break_up(self):
        print("[%s] 和 [%s] 正式分手了...江湖再见...改日再约..."%(self.couple[0].name,self.couple[1].name))
        self.couple.clear() # 分手

class Person:

    def __init__(self,name,age,sex,relation):
        self.name = name
        self.age  = age
        self.sex  = sex
        self.relation = relation # 在每个人的实例里存储关系对象

    def do_private_stuff(self):
        pass

relation_obj = RelationShip()

p1 = Person("Mjj",24,"M",relation_obj)
p2 = Person("Lyy",22,"F",relation_obj)

relation_obj.make_couple(p1,p2) # 让两人称为对象

print(p1.relation.couple)

print(p1.relation.get_my_partner(p1).name) # 拿到Mjj 的对象

p1.relation.break_up()
p2.relation.get_my_partner(p2)







# # 双向关联 绑定
# p1.partner = p2 # 这样就把Lyy当做了Mjj的另一半
# p2.partner = p1 # 这样就把Lyy当做了Mjj的另一半
#
# print(p1.partner.name,p2.partner.name)

